<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
        多多君最近在研究字符串之间的变换，可以对字符串进行若干次变换操作:

交换任意两个相邻的字符，代价为0。
将任意一个字符a修改成字符b，代价为 |a - b|（绝对值）。
现在有两个长度相同的字符串X和Y，多多君想知道，如果要将X和Y变成两个一样的字符串，需要的最少的代价之和是多少。
        */
       /* 
       4
baaa
aabb

其中一种代价最小的变换方案：
首先将第一个字符串通过交换相邻的字符：baaa -> abaa -> aaba，代价为0。
然后将第二个字符串修改最后一个字符b：|b - a| = 1。
两个字符都修改为aaba，所以最小的总代价为1。
       */
      function Slution(len,str1,str2){
          //将字符串进行排序
          let temp1 = []
          let temp2 = []
          for(let i = 0; i < len; i++){
              temp1.push(str1[i])
              temp2.push(str2[i])
          }
          // 排序
          temp2.sort()
          temp1.sort()
          // 定义代价
          let dig = 0
          // 只需要判断两个数组中不同字符的个数
          for(let j = 0; j < len; j++){
              if(temp2[j] != temp1[j]) dig += Math.abs(temp2[j].charCodeAt() - temp1[j].charCodeAt())
          }
          return dig
      }
      console.log(Slution(4,'baaa','aabb'))
      console.log(Slution(4,'abc','xyz'))
    </script>
</body>
</html>